Замкнутая программная среда (ЗПС)

Редактировал(а) Роман Воробьев 2021/08/08 03:20

Замкнутая программная среда (ЗПС) основана на Linux Integrity Measurement Architecture (Linux IMA) с дополнительными расширениями.

Подсистема реализует два независимых механизма:

  1. Контроль загрузки модулей ядра - проверка встроенной в модуль подписи при загрузке его в ядро ОС.
    Данный механизм по умолчанию включен и отключается следующим образом.
  2. Контроль исполняемых файлов (библиотек, скриптов и модулей ядра) - проверка подписи, наложенной в расширенных атрибутах файла (extended attributes, xattr(7)), а именно security.ima.
    Данный механизм по умолчанию выключен и включается следующим образом.

Ключевые особенности:

  • Менеджер пакетов dpkg из состава ОС позволяет для файлов в составе deb-пакетов, сохранить, а при установке deb-пакетов, восстановить наложенные подписи;
  • В deb-пакетах дистрибутива ОС подписаны все файлы, а не только исполняемые файлы формата ELF(Executable and Linkable Format);
  • Имеется возможность подписать deb-пакет(ы) ПО, которые невозможно изменить (например, зафиксированы контрольные суммы), используя отделенные подписи в dump-файле. Этот файл вида <имя пакета>.dump следует разместить в каталоге /etc/dpkg/ima.d/ перед установкой пакета, тогда dpkg наложит подписи из этого дампа в процессе установки пакета.
  • Подсистема контролирует не только запуск исполняемых фалов формата ELF, но и загрузку модулей ядра, а также запуск скриптов и их составных частей. Поддерживаются следующие интерпретаторы:
    НазваниеПримечание 
    Bash 
    Busybox 
    Dash 
    Erlangпроверка байт-кода
    Expect 
    Javaпроверка байт-кода
    Jruby 
    Jython 
    Ksh 
    Lua 
    Nodenode.js(vp8)
    Perl 
    Php 
    Pythonпроверка кода и байт-кода
    Ruby 
    Tcl 
    Tcsh 
    Wine 
    Zsh